function oRequest_CookieEngine(engine) {
  this.engine = engine;
  this.expire = 7;
}

oRequest_CookieEngine.prototype = {
  get: function (key) {
    // 以下是原生Cookies设置
    // var name = name + "=";
    // var ca = document.cookie.split(';');
    // for (var i = 0; i < ca.length; i++) {
    //   var c = ca[i];
    //   // 循环查找
    //   while (c.charAt(0) == ' ') {
    //     c = c.substring(1);
    //   }
    //   if (c.indexOf(name) != -1) {
    //     return c.substring(name.length, c.length);
    //   }
    // }

    // 使用vue-cookies解决path问题，原生的cookies函数会绑定你的path，导致在上级path中是获取不到cookies的。
    let value = this.engine.vue.$cookies.get(key);
    if (!this.engine.tools.IsNullOrEmpty(value)) {
      value = this.engine.tools.base64.decode(value);
      return JSON.parse(value);
    } else {
      return {};// 如果为空，则返回空。
    }
  },
  // Cookie名字，Cookie值，Cookie过期天数
  set: function (key, value) {
    // 序列化并base64化。
    value = this.engine.tools.base64.encode(JSON.stringify(value));

    var d = new Date();
    d.setTime(d.getTime() + (this.expire * 24 * 60 * 60 * 1000));
    this.engine.vue.$cookies.set(key, value, d.toUTCString())

    // 以下原生的cookies设置会产生作用域的bug，导致通过/跳转以后无法及时获取到，所以得采用vue-cookies的方式来设置。
    // var expires = "expires=" + d.toUTCString();
    // // console.info(name + "=" + value + "; " + expires);
    // document.cookie = name + "=" + value + "; " + expires;
    return true;
  },
  remove: function (key) {
    return this.engine.vue.$cookies.remove(key);
  }
}

export {
  oRequest_CookieEngine
}


